﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Text.RegularExpressions;

public partial class Admin_Nguoidung : System.Web.UI.Page
{
    Bus_Users objU = new Bus_Users();
    protected void Page_Load(object sender, EventArgs e)
    {

        if (!IsPostBack)
        {
            if (Session["AdminLogin"] != null)
            {
                if (Request.QueryString.Get("per") != null)
                {
                    LoadData();
                }
                else Response.Redirect("Nguoidung.aspx?per=1");

            }
            else Response.Redirect("Dangnhap.aspx");
        }
    }
    public void LoadData()
    {
        try
        {
            int per = int.Parse(Request.QueryString.Get("per"));
            if (per == 1)
            {
                LoadQuanLy(per);
                Gvnguoidung.DataSource = objU.Users_getAllByPer(per);
                Gvnguoidung.DataBind();
            }
        }
        catch
        {

        }
    }
    public string CheckTrangThai(object obj)
    {
        string b = obj.ToString();
        if (b == "1")
            return "Mở";
        else
            return "Đóng";
    }
    public void LoadQuanLy(int id)
    {
        Page.Title = "Quản lý Người dùng";
        lbtitlethem.Text = "Thêm tài khoản";
        //
        lblienKet.Text = "Quản Lý";
        linkduyetnd.Text = "Duyệt Quản Lý";
        linkduyetnd.NavigateUrl = "Nguoidung.aspx?per=1";
        lbmota.Text = "Ở đây bạn có thể quản trị các tài khoản Quản Lý trong hệ thống. Với các hành động xem, thêm, sửa, xóa.";
        lbtitle.Text = "Danh sách Quản Lý";
    }
    protected void Gvnguoidung_RowEditing(object sender, GridViewEditEventArgs e)
    {
        Gvnguoidung.EditIndex = e.NewEditIndex;
        LoadData();
    }
    protected void Gvnguoidung_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
    {
        Gvnguoidung.EditIndex = -1;
        LoadData();
    }
    protected void Gvnguoidung_RowUpdating(object sender, GridViewUpdateEventArgs e)
    {

        DTO_Users dtoU = new DTO_Users();
        //int per = int.Parse(Request.QueryString.Get("per"));
        int index = Gvnguoidung.EditIndex;
        dtoU.Uid = int.Parse(Gvnguoidung.Rows[index].Cells[1].Text.ToString());
        //dtoU.UserName = Gvnguoidung.Rows[index].Cells[2].Text.ToString();
        dtoU.Name = (Gvnguoidung.Rows[e.RowIndex].Cells[3].Controls[0] as TextBox).Text.Trim();
        dtoU.Email = (Gvnguoidung.Rows[e.RowIndex].Cells[4].Controls[0] as TextBox).Text.Trim();
        //dtoU.Permissions_Id = per;
        dtoU.Status = int.Parse(((DropDownList)Gvnguoidung.Rows[e.RowIndex].FindControl("droptrangthaind")).SelectedValue);
        //dtoU.Password = (Gvnguoidung.Rows[e.RowIndex].Cells[6].Controls[0] as TextBox).Text;
        //Response.Write("<script>alert(\"" + dtoU.Uid + "," + dtoU.UserName + "," + dtoU.Name + "," + dtoU.Permissions_Id + "," + dtoU.Status + "," + dtoU.Password + "\")</script>");
        if (objU.Users_Update(dtoU))
        {
            Gvnguoidung.EditIndex = -1;
            LoadData();
        }
        else Response.Write("<script>alert(\"Cập nhật không thành công\")</script>");

    }
    protected void Gvnguoidung_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        try
        {
            if (e.Row.RowType == DataControlRowType.DataRow)
            {
                e.Row.Attributes.Add("style", "background-color: #fff ; color: #000;");
                e.Row.Attributes.Add("onmouseover", "style.backgroundColor='#ccc'");
                e.Row.Attributes.Add("onmouseout", "style.backgroundColor='#fff'");
            }
        }
        catch
        { }
    }
    protected void Gvnguoidung_PageIndexChanging(object sender, GridViewPageEventArgs e)
    {
        Gvnguoidung.PageIndex = e.NewPageIndex;
        LoadData();
    }
    protected void btnthemnd_Click(object sender, EventArgs e)
    {
        DTO_Users dtoU = new DTO_Users();
        Encode encode = new Encode();
        try
        {
            if (txttk.Text != "" || txtemail.Text != "" || Txthoten.Text != "")
            {
                string match = @"\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*";
                Regex reg = new Regex(match);
                if (reg.IsMatch(txtemail.Text))
                {

                    string where = txtemail.Text.Trim();
                    var data = objU.Users_getAllByEmail(where);
                    if (data.Rows.Count > 0)
                    {
                        Response.Write("<script>alert(\"Email đã tồn tại.\")</script>");
                    }
                    else
                    {
                        int per = int.Parse(Request.QueryString.Get("per"));
                        dtoU.UserName = txttk.Text.Trim();
                        dtoU.Name = Txthoten.Text.Trim();
                        dtoU.Email = txtemail.Text.Trim();
                        dtoU.Permissions_Id = per;
                        dtoU.Status = int.Parse(droptrangthaithemnd.SelectedValue.ToString());
                        dtoU.Password = encode.Md5(txttk.Text.Trim());
                        //Response.Write("<script>alert(\"Thêm thành công!\")</script>");
                        //Response.Write("<script>alert(\"" + data.Rows[0]["Email"] + "," + dtoU.UserName + "," + dtoU.Name + "," + dtoU.Permissions_Id + "," + dtoU.Status + "," + dtoU.Password + "\")</script>");
                        if (objU.Users_Insert(dtoU))
                        {
                            //Response.Write("<script>alert(\"Thêm thành công!\")</script>");
                            LoadData();
                            Response.Write("<script>alert(\"Thêm thành công!\")</script>");
                        }
                    }
                }
                else Response.Write("<script>alert(\"email không đúng.\")</script>");

            }
            else Response.Write("<script>alert(\"Bạn chưa điền đầy đủ thông tin có (*)\")</script>");
        }
        catch (Exception)
        {
            Response.Write("<script>alert(\"Con vịt (*)\")</script>");
            //throw;
        }
    }
    protected void btnxoand_Click(object sender, EventArgs e)
    {
        try
        {
            int count = 0;
            for (int i = 0; i < Gvnguoidung.Rows.Count; i++)
            {
                CheckBox chk = (CheckBox)Gvnguoidung.Rows[i].Cells[0].FindControl("chknguoidung");
                if (chk.Checked)
                {
                    count++;
                    int id = int.Parse(Gvnguoidung.Rows[i].Cells[1].Text);
                    //lap danh sach xoa
                    objU.Users_addtodel(id);
                }
            }
            //tien hanh xoa
            if (count > 0)
            {
                if (objU.Users_del())
                {
                    LoadData();
                }
                else
                {
                    Response.Write("<script>alert(\"Xóa không thành công\")</script>");
                }
            }
            else Response.Write("<script>alert(\"Bạn chưa chọn nhà sản xuất\")</script>");

        }
        catch (Exception ex)
        {

            throw new Exception(ex.Message);
        }
    }
}